/** layui-v2.4.5 MIT License By https://www.layui.com */
;layui.define(function(i) {
	i("layui.mobile", layui.v)
});layui.define(function(e) {
	"use strict";
	var r = {
			open : "{{",
			close : "}}"
		},
		c = {
			exp : function(e) {
				return new RegExp(e, "g")
			},
			query : function(e, c, t) {
				var o = [ "#([\\s\\S])+?", "([^{#}])*?" ][e || 0];
				return n((c || "") + r.open + o + r.close + (t || ""))
			},
			escape : function(e) {
				return String(e || "").replace(/&(?!#?[a-zA-Z0-9]+;)/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/'/g, "&#39;").replace(/"/g, "&quot;")
			},
			error : function(e, r) {
				var c = "Laytpl Error：";
				return "object" == typeof console && console.error(c + e + "\n" + (r || "")), c + e
			}
		},
		n = c.exp,
		t = function(e) {
			this.tpl = e
		};
	t.pt = t.prototype, window.errors = 0, t.pt.parse = function(e, t) {
		var o = this,
			p = e,
			a = n("^" + r.open + "#", ""),
			l = n(r.close + "$", "");
		e = e.replace(/\s+|\r|\t|\n/g, " ").replace(n(r.open + "#"), r.open + "# ").replace(n(r.close + "}"), "} " + r.close).replace(/\\/g, "\\\\").replace(n(r.open + "!(.+?)!" + r.close), function(e) {
			return e = e.replace(n("^" + r.open + "!"), "").replace(n("!" + r.close), "").replace(n(r.open + "|" + r.close), function(e) {
				return e.replace(/(.)/g, "\\$1")
			})
		}).replace(/(?="|')/g, "\\").replace(c.query(), function(e) {
			return e = e.replace(a, "").replace(l, ""), '";' + e.replace(/\\/g, "") + ';view+="'
		}).replace(c.query(1), function(e) {
			var c = '"+(';
			return e.replace(/\s/g, "") === r.open + r.close ? "" : (e = e.replace(n(r.open + "|" + r.close), ""), /^=/.test(e) && (e = e.replace(/^=/, ""), c = '"+_escape_('), c + e.replace(/\\/g, "") + ')+"')
		}), e = '"use strict";var view = "' + e + '";return view;';try {
			return o.cache = e = new Function("d, _escape_", e), e(t, c.escape)
		} catch (u) {
			return delete o.cache
				, c.error(u, p)
		}
	}, t.pt.render = function(e, r) {
		var n,
			t = this;
		return e ? (n = t.cache ? t.cache(e, c.escape) : t.parse(t.tpl, e), r ? void r(n) : n) : c.error("no data")
	};
	var o = function(e) {
		return "string" != typeof e ? c.error("Template not found") : new t(e)
	};
	o.config = function(e) {
		e = e || {};
		for (var c in e) r[c] = e[c]
	}, o.v = "1.2.0", e("laytpl", o)
});layui.define(function(e) {
	"use strict";
	var t = (window, document),
		i = "querySelectorAll",
		n = "getElementsByClassName",
		a = function(e) {
			return t[i](e)
		},
		s = {
			type : 0,
			shade : !0,
			shadeClose : !0,
			fixed : !0,
			anim : "scale"
		},
		l = {
			extend : function(e) {
				var t = JSON.parse(JSON.stringify(s));
				for (var i in e) t[i] = e[i];
				return t
			},
			timer : {},
			end : {}
		};
	l.touch = function(e, t) {
		e.addEventListener("click", function(e) {
			t.call(this, e)
		}, !1)
	};
	var o = 0,
		r = [ "layui-m-layer" ],
		d = function(e) {
			var t = this;
			t.config = l.extend(e), t.view()
		};
	d.prototype.view = function() {
		var e = this,
			i = e.config,
			s = t.createElement("div");
		e.id = s.id = r[0] + o, s.setAttribute("class", r[0] + " " + r[0] + (i.type || 0)), s.setAttribute("index", o);
		var l = function() {
				var e = "object" == typeof i.title;
				return i.title ? '<h3 style="' + (e ? i.title[1] : "") + '">' + (e ? i.title[0] : i.title) + "</h3>" : ""
			}(),
			d = function() {
				"string" == typeof i.btn && (i.btn = [ i.btn ]);
				var e,
					t = (i.btn || []).length;
				return 0 !== t && i.btn ? (e = '<span yes type="1">' + i.btn[0] + "</span>", 2 === t && (e = '<span no type="0">' + i.btn[1] + "</span>" + e), '<div class="layui-m-layerbtn">' + e + "</div>") : ""
			}();
		if (i.fixed || (i.top = i.hasOwnProperty("top") ? i.top : 100, i.style = i.style || "", i.style += " top:" + (t.body.scrollTop + i.top) + "px"), 2 === i.type && (i.content = '<i></i><i class="layui-m-layerload"></i><i></i><p>' + (i.content || "") + "</p>"), i.skin && (i.anim = "up"), "msg" === i.skin && (i.shade = !1), s.innerHTML = (i.shade ? "<div " + ("string" == typeof i.shade ? 'style="' + i.shade + '"' : "") + ' class="layui-m-layershade"></div>' : "") + '<div class="layui-m-layermain" ' + (i.fixed ? "" : 'style="position:static;"') + '><div class="layui-m-layersection"><div class="layui-m-layerchild ' + (i.skin ? "layui-m-layer-" + i.skin + " " : "") + (i.className ? i.className : "") + " " + (i.anim ? "layui-m-anim-" + i.anim : "") + '" ' + (i.style ? 'style="' + i.style + '"' : "") + ">" + l + '<div class="layui-m-layercont">' + i.content + "</div>" + d + "</div></div></div>", !i.type || 2 === i.type) {
			var y = t[n](r[0] + i.type),
				u = y.length;
			u >= 1 && c.close(y[0].getAttribute("index"))
		}
		document.body.appendChild(s);
		var m = e.elem = a("#" + e.id)[0];
		i.success && i.success(m), e.index = o++, e.action(i, m)
	}, d.prototype.action = function(e, t) {
		var i = this;
		e.time && (l.timer[i.index] = setTimeout(function() {
			c.close(i.index)
		}, 1e3 * e.time));
		var a = function() {
			var t = this.getAttribute("type");
			0 == t ? (e.no && e.no(), c.close(i.index)) : e.yes ? e.yes(i.index) : c.close(i.index)
		};
		if (e.btn)
			for (var s = t[n]("layui-m-layerbtn")[0].children, o = s.length, r = 0; r < o; r++) l.touch(s[r], a);
		if (e.shade && e.shadeClose) {
			var d = t[n]("layui-m-layershade")[0];
			l.touch(d, function() {
				c.close(i.index, e.end)
			})
		}
		e.end && (l.end[i.index] = e.end)
	};
	var c = {
		v : "2.0 m",
		index : o,
		open : function(e) {
			var t = new d(e || {});
			return t.index
		},
		close : function(e) {
			var i = a("#" + r[0] + e)[0];
			i && (i.innerHTML = "", t.body.removeChild(i), clearTimeout(l.timer[e]),
			delete l.timer[e]
			, "function" == typeof l.end[e] && l.end[e](),
			delete l.end[e]
			)
		},
		closeAll : function() {
			for (var e = t[n](r[0]), i = 0, a = e.length; i < a; i++) c.close(0 | e[0].getAttribute("index"))
		}
	};
	e("layer-mobile", c)
});layui.define(function(t) {
	var e = function() {
		function t(t) {
			return null == t ? String(t) : J[W.call(t)] || "object"
		}
		function e(e) {
			return "function" == t(e)
		}
		function n(t) {
			return null != t && t == t.window
		}
		function r(t) {
			return null != t && t.nodeType == t.DOCUMENT_NODE
		}
		function i(e) {
			return "object" == t(e)
		}
		function o(t) {
			return i(t) && !n(t) && Object.getPrototypeOf(t) == Object.prototype
		}
		function a(t) {
			var e = !!t && "length" in t && t.length,
				r = T.type(t);
			return "function" != r && !n(t) && ("array" == r || 0 === e || "number" == typeof e && e > 0 && e - 1 in t)
		}
		function s(t) {
			return A.call(t, function(t) {
				return null != t
			})
		}
		function u(t) {
			return t.length > 0 ? T.fn.concat.apply([], t) : t
		}
		function c(t) {
			return t.replace(/::/g, "/").replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z\d])([A-Z])/g, "$1_$2").replace(/_/g, "-").toLowerCase()
		}
		function l(t) {
			return t in F ? F[t] : F[t] = new RegExp("(^|\\s)" + t + "(\\s|$)")
		}
		function f(t, e) {
			return "number" != typeof e || k[c(t)] ? e : e + "px"
		}
		function h(t) {
			var e,
				n;
			return $[t] || (e = L.createElement(t), L.body.appendChild(e), n = getComputedStyle(e, "").getPropertyValue("display"), e.parentNode.removeChild(e), "none" == n && (n = "block"), $[t] = n), $[t]
		}
		function p(t) {
			return "children" in t ? D.call(t.children) : T.map(t.childNodes, function(t) {
				if (1 == t.nodeType) return t
			})
		}
		function d(t, e) {
			var n,
				r = t ? t.length : 0;
			for (n = 0; n < r; n++) this[n] = t[n];
			this.length = r, this.selector = e || ""
		}
		function m(t, e, n) {
			for (j in e) n && (o(e[j]) || Q(e[j])) ? (o(e[j]) && !o(t[j]) && (t[j] = {}), Q(e[j]) && !Q(t[j]) && (t[j] = []), m(t[j], e[j], n)) : e[j] !== E && (t[j] = e[j])
		}
		function v(t, e) {
			return null == e ? T(t) : T(t).filter(e)
		}
		function g(t, n, r, i) {
			return e(n) ? n.call(t, r, i) : n
		}
		function y(t, e, n) {
			null == n ? t.removeAttribute(e) : t.setAttribute(e, n)
		}
		function x(t, e) {
			var n = t.className || "",
				r = n && n.baseVal !== E;
			return e === E ? r ? n.baseVal : n : void (r ? n.baseVal = e : t.className = e)
		}
		function b(t) {
			try {
				return t ? "true" == t || "false" != t && ("null" == t ? null : +t + "" == t ? +t : /^[\[\{]/.test(t) ? T.parseJSON(t) : t) : t
			} catch (e) {
				return t
			}
		}
		function w(t, e) {
			e(t);
			for (var n = 0, r = t.childNodes.length; n < r; n++) w(t.childNodes[n], e)
		}
		var E,
			j,
			T,
			S,
			C,
			N,
			O = [],
			P = O.concat,
			A = O.filter,
			D = O.slice,
			L = window.document,
			$ = {},
			F = {},
			k = {
				"column-count" : 1,
				columns : 1,
				"font-weight" : 1,
				"line-height" : 1,
				opacity : 1,
				"z-index" : 1,
				zoom : 1
			},
			M = /^\s*<(\w+|!)[^>]*>/,
			R = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
			z = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
			Z = /^(?:body|html)$/i,
			q = /([A-Z])/g,
			H = [ "val", "css", "html", "text", "data", "width", "height", "offset" ],
			I = [ "after", "prepend", "before", "append" ],
			V = L.createElement("table"),
			_ = L.createElement("tr"),
			B = {
				tr : L.createElement("tbody"),
				tbody : V,
				thead : V,
				tfoot : V,
				td : _,
				th : _,
				"*" : L.createElement("div")
			},
			U = /complete|loaded|interactive/,
			X = /^[\w-]*$/,
			J = {},
			W = J.toString,
			Y = {},
			G = L.createElement("div"),
			K = {
				tabindex : "tabIndex",
				readonly : "readOnly",
				"for" : "htmlFor",
				"class" : "className",
				maxlength : "maxLength",
				cellspacing : "cellSpacing",
				cellpadding : "cellPadding",
				rowspan : "rowSpan",
				colspan : "colSpan",
				usemap : "useMap",
				frameborder : "frameBorder",
				contenteditable : "contentEditable"
			},
			Q = Array.isArray || function(t) {
				return t instanceof Array
			};
		return Y.matches = function(t, e) {
				if (!e || !t || 1 !== t.nodeType) return !1;
				var n = t.matches || t.webkitMatchesSelector || t.mozMatchesSelector || t.oMatchesSelector || t.matchesSelector;
				if (n) return n.call(t, e);
				var r,
					i = t.parentNode,
					o = !i;
				return o && (i = G).appendChild(t), r = ~Y.qsa(i, e).indexOf(t), o && G.removeChild(t), r
			}, C = function(t) {
				return t.replace(/-+(.)?/g, function(t, e) {
					return e ? e.toUpperCase() : ""
				})
			}, N = function(t) {
				return A.call(t, function(e, n) {
					return t.indexOf(e) == n
				})
			}, Y.fragment = function(t, e, n) {
				var r,
					i,
					a;
				return R.test(t) && (r = T(L.createElement(RegExp.$1))), r || (t.replace && (t = t.replace(z, "<$1></$2>")), e === E && (e = M.test(t) && RegExp.$1), e in B || (e = "*"), a = B[e], a.innerHTML = "" + t, r = T.each(D.call(a.childNodes), function() {
						a.removeChild(this)
					})), o(n) && (i = T(r), T.each(n, function(t, e) {
						H.indexOf(t) > -1 ? i[t](e) : i.attr(t, e)
					})), r
			}, Y.Z = function(t, e) {
				return new d(t, e)
			}, Y.isZ = function(t) {
				return t instanceof Y.Z
			}, Y.init = function(t, n) {
				var r;
				if (!t) return Y.Z();
				if ("string" == typeof t)
					if (t = t.trim(), "<" == t[0] && M.test(t)) r = Y.fragment(t, RegExp.$1, n), t = null;else {
						if (n !== E) return T(n).find(t);
						r = Y.qsa(L, t)
				}else {
					if (e(t)) return T(L).ready(t);
					if (Y.isZ(t)) return t;
					if (Q(t))
						r = s(t);
					else if (i(t)) r = [ t ], t = null;
					else if (M.test(t)) r = Y.fragment(t.trim(), RegExp.$1, n), t = null;else {
						if (n !== E) return T(n).find(t);
						r = Y.qsa(L, t)
					}
				}
				return Y.Z(r, t)
			}, T = function(t, e) {
				return Y.init(t, e)
			}, T.extend = function(t) {
				var e,
					n = D.call(arguments, 1);
				return "boolean" == typeof t && (e = t, t = n.shift()), n.forEach(function(n) {
						m(t, n, e)
					}), t
			}, Y.qsa = function(t, e) {
				var n,
					r = "#" == e[0],
					i = !r && "." == e[0],
					o = r || i ? e.slice(1) : e,
					a = X.test(o);
				return t.getElementById && a && r ? (n = t.getElementById(o)) ? [ n ] : [] : 1 !== t.nodeType && 9 !== t.nodeType && 11 !== t.nodeType ? [] : D.call(a && !r && t.getElementsByClassName ? i ? t.getElementsByClassName(o) : t.getElementsByTagName(e) : t.querySelectorAll(e))
			}, T.contains = L.documentElement.contains ? function(t, e) {
				return t !== e && t.contains(e)
			} : function(t, e) {
				for (; e && (e = e.parentNode);)
					if (e === t) return !0;
				return !1
			}, T.type = t, T.isFunction = e, T.isWindow = n, T.isArray = Q, T.isPlainObject = o, T.isEmptyObject = function(t) {
				var e;
				for (e in t) return !1;
				return !0
			}, T.isNumeric = function(t) {
				var e = Number(t),
					n = typeof t;
				return null != t && "boolean" != n && ("string" != n || t.length) && !isNaN(e) && isFinite(e) || !1
			}, T.inArray = function(t, e, n) {
				return O.indexOf.call(e, t, n)
			}, T.camelCase = C, T.trim = function(t) {
				return null == t ? "" : String.prototype.trim.call(t)
			}, T.uuid = 0, T.support = {}, T.expr = {}, T.noop = function() {}, T.map = function(t, e) {
				var n,
					r,
					i,
					o = [];
				if (a(t))
					for (r = 0; r < t.length; r++) n = e(t[r], r), null != n && o.push(n);
				else
					for (i in t) n = e(t[i], i), null != n && o.push(n);
				return u(o)
			}, T.each = function(t, e) {
				var n,
					r;
				if (a(t)) {
					for (n = 0; n < t.length; n++)
						if (e.call(t[n], n, t[n]) === !1) return t
				} else
					for (r in t)
						if (e.call(t[r], r, t[r]) === !1) return t;
				return t
			}, T.grep = function(t, e) {
				return A.call(t, e)
			}, window.JSON && (T.parseJSON = JSON.parse), T.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(t, e) {
				J["[object " + e + "]"] = e.toLowerCase()
			}), T.fn = {
				constructor : Y.Z,
				length : 0,
				forEach : O.forEach,
				reduce : O.reduce,
				push : O.push,
				sort : O.sort,
				splice : O.splice,
				indexOf : O.indexOf,
				concat : function() {
					var t,
						e,
						n = [];
					for (t = 0; t < arguments.length; t++) e = arguments[t], n[t] = Y.isZ(e) ? e.toArray() : e;
					return P.apply(Y.isZ(this) ? this.toArray() : this, n)
				},
				map : function(t) {
					return T(T.map(this, function(e, n) {
						return t.call(e, n, e)
					}))
				},
				slice : function() {
					return T(D.apply(this, arguments))
				},
				ready : function(t) {
					return U.test(L.readyState) && L.body ? t(T) : L.addEventListener("DOMContentLoaded", function() {
							t(T)
						}, !1), this
				},
				get : function(t) {
					return t === E ? D.call(this) : this[t >= 0 ? t : t + this.length]
				},
				toArray : function() {
					return this.get()
				},
				size : function() {
					return this.length
				},
				remove : function() {
					return this.each(function() {
						null != this.parentNode && this.parentNode.removeChild(this)
					})
				},
				each : function(t) {
					return O.every.call(this, function(e, n) {
							return t.call(e, n, e) !== !1
						}), this
				},
				filter : function(t) {
					return e(t) ? this.not(this.not(t)) : T(A.call(this, function(e) {
						return Y.matches(e, t)
					}))
				},
				add : function(t, e) {
					return T(N(this.concat(T(t, e))))
				},
				is : function(t) {
					return this.length > 0 && Y.matches(this[0], t)
				},
				not : function(t) {
					var n = [];
					if (e(t) && t.call !== E) this.each(function(e) {
							t.call(this, e) || n.push(this)
						});else {
						var r = "string" == typeof t ? this.filter(t) : a(t) && e(t.item) ? D.call(t) : T(t);
						this.forEach(function(t) {
							r.indexOf(t) < 0 && n.push(t)
						})
					}
					return T(n)
				},
				has : function(t) {
					return this.filter(function() {
						return i(t) ? T.contains(this, t) : T(this).find(t).size()
					})
				},
				eq : function(t) {
					return t === -1 ? this.slice(t) : this.slice(t, +t + 1)
				},
				first : function() {
					var t = this[0];
					return t && !i(t) ? t : T(t)
				},
				last : function() {
					var t = this[this.length - 1];
					return t && !i(t) ? t : T(t)
				},
				find : function(t) {
					var e,
						n = this;
					return e = t ? "object" == typeof t ? T(t).filter(function() {
						var t = this;
						return O.some.call(n, function(e) {
							return T.contains(e, t)
						})
					}) : 1 == this.length ? T(Y.qsa(this[0], t)) : this.map(function() {
						return Y.qsa(this, t)
					}) : T()
				},
				closest : function(t, e) {
					var n = [],
						i = "object" == typeof t && T(t);
					return this.each(function(o, a) {
							for (; a && !(i ? i.indexOf(a) >= 0 : Y.matches(a, t));) a = a !== e && !r(a) && a.parentNode;
							a && n.indexOf(a) < 0 && n.push(a)
						}), T(n)
				},
				parents : function(t) {
					for (var e = [], n = this; n.length > 0;) n = T.map(n, function(t) {
							if ((t = t.parentNode) && !r(t) && e.indexOf(t) < 0) return e.push(t), t
						});
					return v(e, t)
				},
				parent : function(t) {
					return v(N(this.pluck("parentNode")), t)
				},
				children : function(t) {
					return v(this.map(function() {
						return p(this)
					}), t)
				},
				contents : function() {
					return this.map(function() {
						return this.contentDocument || D.call(this.childNodes)
					})
				},
				siblings : function(t) {
					return v(this.map(function(t, e) {
						return A.call(p(e.parentNode), function(t) {
							return t !== e
						})
					}), t)
				},
				empty : function() {
					return this.each(function() {
						this.innerHTML = ""
					})
				},
				pluck : function(t) {
					return T.map(this, function(e) {
						return e[t]
					})
				},
				show : function() {
					return this.each(function() {
						"none" == this.style.display && (this.style.display = ""), "none" == getComputedStyle(this, "").getPropertyValue("display") && (this.style.display = h(this.nodeName))
					})
				},
				replaceWith : function(t) {
					return this.before(t).remove()
				},
				wrap : function(t) {
					var n = e(t);
					if (this[0] && !n) var r = T(t).get(0),
							i = r.parentNode || this.length > 1;
					return this.each(function(e) {
						T(this).wrapAll(n ? t.call(this, e) : i ? r.cloneNode(!0) : r)
					})
				},
				wrapAll : function(t) {
					if (this[0]) {
						T(this[0]).before(t = T(t));
						for (var e; (e = t.children()).length;) t = e.first();
						T(t).append(this)
					}
					return this
				},
				wrapInner : function(t) {
					var n = e(t);
					return this.each(function(e) {
						var r = T(this),
							i = r.contents(),
							o = n ? t.call(this, e) : t;
						i.length ? i.wrapAll(o) : r.append(o)
					})
				},
				unwrap : function() {
					return this.parent().each(function() {
							T(this).replaceWith(T(this).children())
						}), this
				},
				clone : function() {
					return this.map(function() {
						return this.cloneNode(!0)
					})
				},
				hide : function() {
					return this.css("display", "none")
				},
				toggle : function(t) {
					return this.each(function() {
						var e = T(this);
						(t === E ? "none" == e.css("display") : t) ? e.show() : e.hide()
					})
				},
				prev : function(t) {
					return T(this.pluck("previousElementSibling")).filter(t || "*")
				},
				next : function(t) {
					return T(this.pluck("nextElementSibling")).filter(t || "*")
				},
				html : function(t) {
					return 0 in arguments ? this.each(function(e) {
						var n = this.innerHTML;
						T(this).empty().append(g(this, t, e, n))
					}) : 0 in this ? this[0].innerHTML : null
				},
				text : function(t) {
					return 0 in arguments ? this.each(function(e) {
						var n = g(this, t, e, this.textContent);
						this.textContent = null == n ? "" : "" + n
					}) : 0 in this ? this.pluck("textContent").join("") : null
				},
				attr : function(t, e) {
					var n;
					return "string" != typeof t || 1 in arguments ? this.each(function(n) {
						if (1 === this.nodeType)
							if (i(t))
								for (j in t) y(this, j, t[j]);
							else y(this, t, g(this, e, n, this.getAttribute(t)))
					}) : 0 in this && 1 == this[0].nodeType && null != (n = this[0].getAttribute(t)) ? n : E
				},
				removeAttr : function(t) {
					return this.each(function() {
						1 === this.nodeType && t.split(" ").forEach(function(t) {
							y(this, t)
						}, this)
					})
				},
				prop : function(t, e) {
					return t = K[t] || t, 1 in arguments ? this.each(function(n) {
							this[t] = g(this, e, n, this[t])
						}) : this[0] && this[0][t]
				},
				removeProp : function(t) {
					return t = K[t] || t, this.each(function() {
							delete this[t]
						})
				},
				data : function(t, e) {
					var n = "data-" + t.replace(q, "-$1").toLowerCase(),
						r = 1 in arguments ? this.attr(n, e) : this.attr(n);
					return null !== r ? b(r) : E
				},
				val : function(t) {
					return 0 in arguments ? (null == t && (t = ""), this.each(function(e) {
						this.value = g(this, t, e, this.value)
					})) : this[0] && (this[0].multiple ? T(this[0]).find("option").filter(function() {
						return this.selected
					}).pluck("value") : this[0].value)
				},
				offset : function(t) {
					if (t) return this.each(function(e) {
							var n = T(this),
								r = g(this, t, e, n.offset()),
								i = n.offsetParent().offset(),
								o = {
									top : r.top - i.top,
									left : r.left - i.left
								};
							"static" == n.css("position") && (o.position = "relative"), n.css(o)
						});
					if (!this.length) return null;
					if (L.documentElement !== this[0] && !T.contains(L.documentElement, this[0])) return {
							top : 0,
							left : 0
						};
					var e = this[0].getBoundingClientRect();
					return {
						left : e.left + window.pageXOffset,
						top : e.top + window.pageYOffset,
						width : Math.round(e.width),
						height : Math.round(e.height)
					}
				},
				css : function(e, n) {
					if (arguments.length < 2) {
						var r = this[0];
						if ("string" == typeof e) {
							if (!r) return;
							return r.style[C(e)] || getComputedStyle(r, "").getPropertyValue(e)
						}
						if (Q(e)) {
							if (!r) return;
							var i = {},
								o = getComputedStyle(r, "");
							return T.each(e, function(t, e) {
									i[e] = r.style[C(e)] || o.getPropertyValue(e)
								}), i
						}
					}
					var a = "";
					if ("string" == t(e))
						n || 0 === n ? a = c(e) + ":" + f(e, n) : this.each(function() {
							this.style.removeProperty(c(e))
						});else
						for (j in e) e[j] || 0 === e[j] ? a += c(j) + ":" + f(j, e[j]) + ";" : this.each(function() {
								this.style.removeProperty(c(j))
							});
					return this.each(function() {
						this.style.cssText += ";" + a
					})
				},
				index : function(t) {
					return t ? this.indexOf(T(t)[0]) : this.parent().children().indexOf(this[0])
				},
				hasClass : function(t) {
					return !!t && O.some.call(this, function(t) {
							return this.test(x(t))
						}, l(t))
				},
				addClass : function(t) {
					return t ? this.each(function(e) {
						if ("className" in this) {
							S = [];
							var n = x(this),
								r = g(this, t, e, n);
							r.split(/\s+/g).forEach(function(t) {
								T(this).hasClass(t) || S.push(t)
							}, this), S.length && x(this, n + (n ? " " : "") + S.join(" "))
						}
					}) : this
				},
				removeClass : function(t) {
					return this.each(function(e) {
						if ("className" in this) {
							if (t === E) return x(this, "");
							S = x(this), g(this, t, e, S).split(/\s+/g).forEach(function(t) {
								S = S.replace(l(t), " ")
							}), x(this, S.trim())
						}
					})
				},
				toggleClass : function(t, e) {
					return t ? this.each(function(n) {
						var r = T(this),
							i = g(this, t, n, x(this));
						i.split(/\s+/g).forEach(function(t) {
							(e === E ? !r.hasClass(t) : e) ? r.addClass(t) : r.removeClass(t)
						})
					}) : this
				},
				scrollTop : function(t) {
					if (this.length) {
						var e = "scrollTop" in this[0];
						return t === E ? e ? this[0].scrollTop : this[0].pageYOffset : this.each(e ? function() {
							this.scrollTop = t
						} : function() {
							this.scrollTo(this.scrollX, t)
						})
					}
				},
				scrollLeft : function(t) {
					if (this.length) {
						var e = "scrollLeft" in this[0];
						return t === E ? e ? this[0].scrollLeft : this[0].pageXOffset : this.each(e ? function() {
							this.scrollLeft = t
						} : function() {
							this.scrollTo(t, this.scrollY)
						})
					}
				},
				position : function() {
					if (this.length) {
						var t = this[0],
							e = this.offsetParent(),
							n = this.offset(),
							r = Z.test(e[0].nodeName) ? {
								top : 0,
								left : 0
							} : e.offset();
						return n.top -= parseFloat(T(t).css("margin-top")) || 0, n.left -= parseFloat(T(t).css("margin-left")) || 0, r.top += parseFloat(T(e[0]).css("border-top-width")) || 0, r.left += parseFloat(T(e[0]).css("border-left-width")) || 0, {
								top : n.top - r.top,
								left : n.left - r.left
						}
					}
				},
				offsetParent : function() {
					return this.map(function() {
						for (var t = this.offsetParent || L.body; t && !Z.test(t.nodeName) && "static" == T(t).css("position");) t = t.offsetParent;
						return t
					})
				}
			}, T.fn.detach = T.fn.remove, [ "width", "height" ].forEach(function(t) {
				var e = t.replace(/./, function(t) {
					return t[0].toUpperCase()
				});
				T.fn[t] = function(i) {
					var o,
						a = this[0];
					return i === E ? n(a) ? a["inner" + e] : r(a) ? a.documentElement["scroll" + e] : (o = this.offset()) && o[t] : this.each(function(e) {
						a = T(this), a.css(t, g(this, i, e, a[t]()))
					})
				}
			}), I.forEach(function(e, n) {
				var r = n % 2;
				T.fn[e] = function() {
					var e,
						i,
						o = T.map(arguments, function(n) {
							var r = [];
							return e = t(n), "array" == e ? (n.forEach(function(t) {
									return t.nodeType !== E ? r.push(t) : T.zepto.isZ(t) ? r = r.concat(t.get()) : void (r = r.concat(Y.fragment(t)))
								}), r) : "object" == e || null == n ? n : Y.fragment(n)
						}),
						a = this.length > 1;
					return o.length < 1 ? this : this.each(function(t, e) {
						i = r ? e : e.parentNode, e = 0 == n ? e.nextSibling : 1 == n ? e.firstChild : 2 == n ? e : null;
						var s = T.contains(L.documentElement, i);
						o.forEach(function(t) {
							if (a)
								t = t.cloneNode(!0);
							else if (!i) return T(t).remove();
							i.insertBefore(t, e), s && w(t, function(t) {
								if (!(null == t.nodeName || "SCRIPT" !== t.nodeName.toUpperCase() || t.type && "text/javascript" !== t.type || t.src)) {
									var e = t.ownerDocument ? t.ownerDocument.defaultView : window;
									e.eval.call(e, t.innerHTML)
								}
							})
						})
					})
				}, T.fn[r ? e + "To" : "insert" + (n ? "Before" : "After")] = function(t) {
					return T(t)[e](this), this
				}
			}), Y.Z.prototype = d.prototype = T.fn, Y.uniq = N, Y.deserializeValue = b, T.zepto = Y, T
	}();
	!function(t) {
		function e(t) {
			return t._zid || (t._zid = h++)
		}
		function n(t, n, o, a) {
			if (n = r(n), n.ns) var s = i(n.ns);
			return (v[e(t)] || []).filter(function(t) {
				return t && (!n.e || t.e == n.e) && (!n.ns || s.test(t.ns)) && (!o || e(t.fn) === e(o)) && (!a || t.sel == a)
			})
		}
		function r(t) {
			var e = ("" + t).split(".");
			return {
				e : e[0],
				ns : e.slice(1).sort().join(" ")
			}
		}
		function i(t) {
			return new RegExp("(?:^| )" + t.replace(" ", " .* ?") + "(?: |$)")
		}
		function o(t, e) {
			return t.del && !y && t.e in x || !!e
		}
		function a(t) {
			return b[t] || y && x[t] || t
		}
		function s(n, i, s, u, l, h, p) {
			var d = e(n),
				m = v[d] || (v[d] = []);
			i.split(/\s/).forEach(function(e) {
				if ("ready" == e) return t(document).ready(s);
				var i = r(e);
				i.fn = s, i.sel = l, i.e in b && (s = function(e) {
					var n = e.relatedTarget;
					if (!n || n !== this && !t.contains(this, n)) return i.fn.apply(this, arguments)
				}), i.del = h;
				var d = h || s;
				i.proxy = function(t) {
					if (t = c(t), !t.isImmediatePropagationStopped()) {
						t.data = u;
						var e = d.apply(n, t._args == f ? [ t ] : [ t ].concat(t._args));
						return e === !1 && (t.preventDefault(), t.stopPropagation()), e
					}
				}, i.i = m.length, m.push(i), "addEventListener" in n && n.addEventListener(a(i.e), i.proxy, o(i, p))
			})
		}
		function u(t, r, i, s, u) {
			var c = e(t);
			(r || "").split(/\s/).forEach(function(e) {
				n(t, e, i, s).forEach(function(e) {
					delete v[c][e.i]
					, "removeEventListener" in t && t.removeEventListener(a(e.e), e.proxy, o(e, u))
				})
			})
		}
		function c(e, n) {
			return !n && e.isDefaultPrevented || (n || (n = e), t.each(T, function(t, r) {
					var i = n[t];
					e[t] = function() {
						return this[r] = w, i && i.apply(n, arguments)
					}, e[r] = E
				}), e.timeStamp || (e.timeStamp = Date.now()), (n.defaultPrevented !== f ? n.defaultPrevented : "returnValue" in n ? n.returnValue === !1 : n.getPreventDefault && n.getPreventDefault()) && (e.isDefaultPrevented = w)), e
		}
		function l(t) {
			var e,
				n = {
					originalEvent : t
				};
			for (e in t) j.test(e) || t[e] === f || (n[e] = t[e]);
			return c(n, t)
		}
		var f,
			h = 1,
			p = Array.prototype.slice,
			d = t.isFunction,
			m = function(t) {
				return "string" == typeof t
			},
			v = {},
			g = {},
			y = "onfocusin" in window,
			x = {
				focus : "focusin",
				blur : "focusout"
			},
			b = {
				mouseenter : "mouseover",
				mouseleave : "mouseout"
			};
		g.click = g.mousedown = g.mouseup = g.mousemove = "MouseEvents", t.event = {
			add : s,
			remove : u
		}, t.proxy = function(n, r) {
			var i = 2 in arguments && p.call(arguments, 2);
			if (d(n)) {
				var o = function() {
					return n.apply(r, i ? i.concat(p.call(arguments)) : arguments)
				};
				return o._zid = e(n), o
			}
			if (m(r)) return i ? (i.unshift(n[r], n), t.proxy.apply(null, i)) : t.proxy(n[r], n);
			throw new TypeError("expected function")
		}, t.fn.bind = function(t, e, n) {
			return this.on(t, e, n)
		}, t.fn.unbind = function(t, e) {
			return this.off(t, e)
		}, t.fn.one = function(t, e, n, r) {
			return this.on(t, e, n, r, 1)
		};
		var w = function() {
				return !0
			},
			E = function() {
				return !1
			},
			j = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,
			T = {
				preventDefault : "isDefaultPrevented",
				stopImmediatePropagation : "isImmediatePropagationStopped",
				stopPropagation : "isPropagationStopped"
			};
		t.fn.delegate = function(t, e, n) {
			return this.on(e, t, n)
		}, t.fn.undelegate = function(t, e, n) {
			return this.off(e, t, n)
		}, t.fn.live = function(e, n) {
			return t(document.body).delegate(this.selector, e, n), this
		}, t.fn.die = function(e, n) {
			return t(document.body).undelegate(this.selector, e, n), this
		}, t.fn.on = function(e, n, r, i, o) {
			var a,
				c,
				h = this;
			return e && !m(e) ? (t.each(e, function(t, e) {
				h.on(t, n, r, e, o)
			}), h) : (m(n) || d(i) || i === !1 || (i = r, r = n, n = f), i !== f && r !== !1 || (i = r, r = f), i === !1 && (i = E), h.each(function(f, h) {
				o && (a = function(t) {
					return u(h, t.type, i), i.apply(this, arguments)
				}), n && (c = function(e) {
					var r,
						o = t(e.target).closest(n, h).get(0);
					if (o && o !== h) return r = t.extend(l(e), {
								currentTarget : o,
								liveFired : h
							}), (a || i).apply(o, [ r ].concat(p.call(arguments, 1)))
				}), s(h, e, i, r, n, c || a)
			}))
		}, t.fn.off = function(e, n, r) {
			var i = this;
			return e && !m(e) ? (t.each(e, function(t, e) {
				i.off(t, n, e)
			}), i) : (m(n) || d(r) || r === !1 || (r = n, n = f), r === !1 && (r = E), i.each(function() {
				u(this, e, r, n)
			}))
		}, t.fn.trigger = function(e, n) {
			return e = m(e) || t.isPlainObject(e) ? t.Event(e) : c(e), e._args = n, this.each(function() {
					e.type in x && "function" == typeof this[e.type] ? this[e.type]() : "dispatchEvent" in this ? this.dispatchEvent(e) : t(this).triggerHandler(e, n)
				})
		}, t.fn.triggerHandler = function(e, r) {
			var i,
				o;
			return this.each(function(a, s) {
					i = l(m(e) ? t.Event(e) : e), i._args = r, i.target = s, t.each(n(s, e.type || e), function(t, e) {
						if (o = e.proxy(i), i.isImmediatePropagationStopped()) return !1
					})
				}), o
		}, "focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e) {
			t.fn[e] = function(t) {
				return 0 in arguments ? this.bind(e, t) : this.trigger(e)
			}
		}), t.Event = function(t, e) {
			m(t) || (e = t, t = e.type);
			var n = document.createEvent(g[t] || "Events"),
				r = !0;
			if (e)
				for (var i in e) "bubbles" == i ? r = !!e[i] : n[i] = e[i];
			return n.initEvent(t, r, !0), c(n)
		}
	}(e), function(t) {
		function e(e, n, r) {
			var i = t.Event(n);
			return t(e).trigger(i, r), !i.isDefaultPrevented()
		}
		function n(t, n, r, i) {
			if (t.global) return e(n || x, r, i)
		}
		function r(e) {
			e.global && 0 === t.active++ && n(e, null, "ajaxStart")
		}
		function i(e) {
			e.global && !--t.active && n(e, null, "ajaxStop")
		}
		function o(t, e) {
			var r = e.context;
			return e.beforeSend.call(r, t, e) !== !1 && n(e, r, "ajaxBeforeSend", [ t, e ]) !== !1 && void n(e, r, "ajaxSend", [ t, e ])
		}
		function a(t, e, r, i) {
			var o = r.context,
				a = "success";
			r.success.call(o, t, a, e), i && i.resolveWith(o, [ t, a, e ]), n(r, o, "ajaxSuccess", [ e, r, t ]), u(a, e, r)
		}
		function s(t, e, r, i, o) {
			var a = i.context;
			i.error.call(a, r, e, t), o && o.rejectWith(a, [ r, e, t ]), n(i, a, "ajaxError", [ r, i, t || e ]), u(e, r, i)
		}
		function u(t, e, r) {
			var o = r.context;
			r.complete.call(o, e, t), n(r, o, "ajaxComplete", [ e, r ]), i(r)
		}
		function c(t, e, n) {
			if (n.dataFilter == l) return t;
			var r = n.context;
			return n.dataFilter.call(r, t, e)
		}
		function l() {
		}
		function f(t) {
			return t && (t = t.split(";", 2)[0]), t && (t == T ? "html" : t == j ? "json" : w.test(t) ? "script" : E.test(t) && "xml") || "text"
		}
		function h(t, e) {
			return "" == e ? t : (t + "&" + e).replace(/[&?]{1,2}/, "?")
		}
		function p(e) {
			e.processData && e.data && "string" != t.type(e.data) && (e.data = t.param(e.data, e.traditional)), !e.data || e.type && "GET" != e.type.toUpperCase() && "jsonp" != e.dataType || (e.url = h(e.url, e.data), e.data = void 0)
		}
		function d(e, n, r, i) {
			return t.isFunction(n) && (i = r, r = n, n = void 0), t.isFunction(r) || (i = r, r = void 0), {
					url : e,
					data : n,
					success : r,
					dataType : i
			}
		}
		function m(e, n, r, i) {
			var o,
				a = t.isArray(n),
				s = t.isPlainObject(n);
			t.each(n, function(n, u) {
				o = t.type(u), i && (n = r ? i : i + "[" + (s || "object" == o || "array" == o ? n : "") + "]"), !i && a ? e.add(u.name, u.value) : "array" == o || !r && "object" == o ? m(e, u, r, n) : e.add(n, u)
			})
		}
		var v,
			g,
			y = +new Date,
			x = window.document,
			b = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
			w = /^(?:text|application)\/javascript/i,
			E = /^(?:text|application)\/xml/i,
			j = "application/json",
			T = "text/html",
			S = /^\s*$/,
			C = x.createElement("a");
		C.href = window.location.href, t.active = 0, t.ajaxJSONP = function(e, n) {
			if (!("type" in e)) return t.ajax(e);
			var r,
				i,
				u = e.jsonpCallback,
				c = (t.isFunction(u) ? u() : u) || "Zepto" + y++,
				l = x.createElement("script"),
				f = window[c],
				h = function(e) {
					t(l).triggerHandler("error", e || "abort")
				},
				p = {
					abort : h
				};
			return n && n.promise(p), t(l).on("load error", function(o, u) {
					clearTimeout(i), t(l).off().remove(), "error" != o.type && r ? a(r[0], p, e, n) : s(null, u || "error", p, e, n), window[c] = f, r && t.isFunction(f) && f(r[0]), f = r = void 0
				}), o(p, e) === !1 ? (h("abort"), p) : (window[c] = function() {
					r = arguments
				}, l.src = e.url.replace(/\?(.+)=\?/, "?$1=" + c), x.head.appendChild(l), e.timeout > 0 && (i = setTimeout(function() {
					h("timeout")
				}, e.timeout)), p)
		}, t.ajaxSettings = {
			type : "GET",
			beforeSend : l,
			success : l,
			error : l,
			complete : l,
			context : null,
			global : !0,
			xhr : function() {
				return new window.XMLHttpRequest
			},
			accepts : {
				script : "text/javascript, application/javascript, application/x-javascript",
				json : j,
				xml : "application/xml, text/xml",
				html : T,
				text : "text/plain"
			},
			crossDomain : !1,
			timeout : 0,
			processData : !0,
			cache : !0,
			dataFilter : l
		}, t.ajax = function(e) {
			var n,
				i,
				u = t.extend({}, e || {}),
				d = t.Deferred && t.Deferred();
			for (v in t.ajaxSettings) void 0 === u[v] && (u[v] = t.ajaxSettings[v]);
			r(u), u.crossDomain || (n = x.createElement("a"), n.href = u.url, n.href = n.href, u.crossDomain = C.protocol + "//" + C.host != n.protocol + "//" + n.host), u.url || (u.url = window.location.toString()), (i = u.url.indexOf("#")) > -1 && (u.url = u.url.slice(0, i)), p(u);
			var m = u.dataType,
				y = /\?.+=\?/.test(u.url);
			if (y && (m = "jsonp"), u.cache !== !1 && (e && e.cache === !0 || "script" != m && "jsonp" != m) || (u.url = h(u.url, "_=" + Date.now())), "jsonp" == m) return y || (u.url = h(u.url, u.jsonp ? u.jsonp + "=?" : u.jsonp === !1 ? "" : "callback=?")), t.ajaxJSONP(u, d);
			var b,
				w = u.accepts[m],
				E = {},
				j = function(t, e) {
					E[t.toLowerCase()] = [ t, e ]
				},
				T = /^([\w-]+:)\/\//.test(u.url) ? RegExp.$1 : window.location.protocol,
				N = u.xhr(),
				O = N.setRequestHeader;
			if (d && d.promise(N), u.crossDomain || j("X-Requested-With", "XMLHttpRequest"), j("Accept", w || "*/*"), (w = u.mimeType || w) && (w.indexOf(",") > -1 && (w = w.split(",", 2)[0]), N.overrideMimeType && N.overrideMimeType(w)), (u.contentType || u.contentType !== !1 && u.data && "GET" != u.type.toUpperCase()) && j("Content-Type", u.contentType || "application/x-www-form-urlencoded"), u.headers)
				for (g in u.headers) j(g, u.headers[g]);
			if (N.setRequestHeader = j, N.onreadystatechange = function() {
					if (4 == N.readyState) {
						N.onreadystatechange = l, clearTimeout(b);
						var e,
							n = !1;
						if (N.status >= 200 && N.status < 300 || 304 == N.status || 0 == N.status && "file:" == T) {
							if (m = m || f(u.mimeType || N.getResponseHeader("content-type")), "arraybuffer" == N.responseType || "blob" == N.responseType)
								e = N.response;else {
								e = N.responseText;try {
									e = c(e, m, u), "script" == m ? (0, eval)(e) : "xml" == m ? e = N.responseXML : "json" == m && (e = S.test(e) ? null : t.parseJSON(e))
								} catch (r) {
									n = r
								}
								if (n) return s(n, "parsererror", N, u, d)
							}
							a(e, N, u, d)
						} else s(N.statusText || null, N.status ? "error" : "abort", N, u, d)
					}
				}, o(N, u) === !1) return N.abort(), s(null, "abort", N, u, d), N;
			var P = !("async" in u) || u.async;
			if (N.open(u.type, u.url, P, u.username, u.password), u.xhrFields)
				for (g in u.xhrFields) N[g] = u.xhrFields[g];
			for (g in E) O.apply(N, E[g]);
			return u.timeout > 0 && (b = setTimeout(function() {
					N.onreadystatechange = l, N.abort(), s(null, "timeout", N, u, d)
				}, u.timeout)), N.send(u.data ? u.data : null), N
		}, t.get = function() {
			return t.ajax(d.apply(null, arguments))
		}, t.post = function() {
			var e = d.apply(null, arguments);
			return e.type = "POST", t.ajax(e)
		}, t.getJSON = function() {
			var e = d.apply(null, arguments);
			return e.dataType = "json", t.ajax(e)
		}, t.fn.load = function(e, n, r) {
			if (!this.length) return this;
			var i,
				o = this,
				a = e.split(/\s/),
				s = d(e, n, r),
				u = s.success;
			return a.length > 1 && (s.url = a[0], i = a[1]), s.success = function(e) {
					o.html(i ? t("<div>").html(e.replace(b, "")).find(i) : e), u && u.apply(o, arguments)
				}, t.ajax(s), this
		};
		var N = encodeURIComponent;
		t.param = function(e, n) {
			var r = [];
			return r.add = function(e, n) {
					t.isFunction(n) && (n = n()), null == n && (n = ""), this.push(N(e) + "=" + N(n))
				}, m(r, e, n), r.join("&").replace(/%20/g, "+")
		}
	}(e), function(t) {
		t.fn.serializeArray = function() {
			var e,
				n,
				r = [],
				i = function(t) {
					return t.forEach ? t.forEach(i) : void r.push({
						name : e,
						value : t
					})
				};
			return this[0] && t.each(this[0].elements, function(r, o) {
					n = o.type, e = o.name, e && "fieldset" != o.nodeName.toLowerCase() && !o.disabled && "submit" != n && "reset" != n && "button" != n && "file" != n && ("radio" != n && "checkbox" != n || o.checked) && i(t(o).val())
				}), r
		}, t.fn.serialize = function() {
			var t = [];
			return this.serializeArray().forEach(function(e) {
					t.push(encodeURIComponent(e.name) + "=" + encodeURIComponent(e.value))
				}), t.join("&")
		}, t.fn.submit = function(e) {
			if (0 in arguments) this.bind("submit", e);
			else if (this.length) {
				var n = t.Event("submit");
				this.eq(0).trigger(n), n.isDefaultPrevented() || this.get(0).submit()
			}
			return this
		}
	}(e), function() {
		try {
			getComputedStyle(void 0)
		} catch (t) {
			var e = getComputedStyle;
			window.getComputedStyle = function(t, n) {
				try {
					return e(t, n)
				} catch (r) {
					return null
				}
			}
		}
	}(), t("zepto", e)
});layui.define([ "layer-mobile", "zepto" ], function(e) {
	"use strict";
	var t = layui.zepto,
		a = layui["layer-mobile"],
		i = (layui.device(), "layui-upload-enter"),
		n = "layui-upload-iframe",
		r = {
			icon : 2,
			shift : 6
		},
		o = {
			file : "文件",
			video : "视频",
			audio : "音频"
		};
	a.msg = function(e) {
		return a.open({
			content : e || "",
			skin : "msg",
			time : 2
		})
	};
	var s = function(e) {
		this.options = e
	};
	s.prototype.init = function() {
		var e = this,
			a = e.options,
			r = t("body"),
			s = t(a.elem || ".layui-upload-file"),
			u = t('<iframe id="' + n + '" class="' + n + '" name="' + n + '"></iframe>');
		return t("#" + n)[0] || r.append(u), s.each(function(r, s) {
				s = t(s);
				var u = '<form target="' + n + '" method="' + (a.method || "post") + '" key="set-mine" enctype="multipart/form-data" action="' + (a.url || "") + '"></form>',
					l = s.attr("lay-type") || a.type;
				a.unwrap || (u = '<div class="layui-box layui-upload-button">' + u + '<span class="layui-upload-icon"><i class="layui-icon">&#xe608;</i>' + (s.attr("lay-title") || a.title || "上传" + (o[l] || "图片")) + "</span></div>"), u = t(u), a.unwrap || u.on("dragover", function(e) {
					e.preventDefault(), t(this).addClass(i)
				}).on("dragleave", function() {
					t(this).removeClass(i)
				}).on("drop", function() {
					t(this).removeClass(i)
				}), s.parent("form").attr("target") === n && (a.unwrap ? s.unwrap() : (s.parent().next().remove(), s.unwrap().unwrap())), s.wrap(u), s.off("change").on("change", function() {
					e.action(this, l)
				})
			})
	}, s.prototype.action = function(e, i) {
		var o = this,
			s = o.options,
			u = e.value,
			l = t(e),
			p = l.attr("lay-ext") || s.ext || "";
		if (u) {
			switch (i) {
			case "file":
				if (p && !RegExp("\\w\\.(" + p + ")$", "i").test(escape(u))) return a.msg("不支持该文件格式", r), e.value = "";
				break;case "video":
				if (!RegExp("\\w\\.(" + (p || "avi|mp4|wma|rmvb|rm|flash|3gp|flv") + ")$", "i").test(escape(u))) return a.msg("不支持该视频格式", r), e.value = "";
				break;case "audio":
				if (!RegExp("\\w\\.(" + (p || "mp3|wav|mid") + ")$", "i").test(escape(u))) return a.msg("不支持该音频格式", r), e.value = "";
				break;default:
				if (!RegExp("\\w\\.(" + (p || "jpg|png|gif|bmp|jpeg") + ")$", "i").test(escape(u))) return a.msg("不支持该图片格式", r), e.value = ""
			}
			s.before && s.before(e), l.parent().submit();
			var c = t("#" + n),
				f = setInterval(function() {
					var t;
					try {
						t = c.contents().find("body").text()
					} catch (i) {
						a.msg("上传接口存在跨域", r), clearInterval(f)
					}
					if (t) {
						clearInterval(f), c.contents().find("body").html("");try {
							t = JSON.parse(t)
						} catch (i) {
							return t = {}, a.msg("请对上传接口返回JSON字符", r)
						} "function" == typeof s.success && s.success(t, e)
					}
				}, 30);
			e.value = ""
		}
	}, e("upload-mobile", function(e) {
		var t = new s(e = e || {});
		t.init()
	})
});layui.define(function(i) {
	i("layim-mobile", layui.v)
});layui["layui.mobile"] || layui.config({
	base : layui.cache.dir + "lay/modules/mobile/"
}).extend({
	"layer-mobile" : "layer-mobile",
	zepto : "zepto",
	"upload-mobile" : "upload-mobile",
	"layim-mobile" : "layim-mobile"
}), layui.define([ "layer-mobile", "zepto", "layim-mobile" ], function(l) {
	l("mobile", {
		layer : layui["layer-mobile"],
		layim : layui["layim-mobile"]
	})
});